package com.mh.common.core.exception;

import com.mh.common.core.domain.BaseResp;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
//@ControllerAdvice+@ResponseBody --> 代表当前类为异常处理类
public class GlobalException {

    @ExceptionHandler(BaseException.class)
    //表示该方法用于处理 BaseException 类型的异常, 当抛出BaseException或其子类异常时会调用该方法
    public BaseResp baseException(BaseException e) {
        //返回一个统一的错误响应对象 BaseResp，其中包含异常的错误信息
        return BaseResp.error(e.getMessage());
    }

    //业务异常处理
    @ExceptionHandler(Exception.class)
    public BaseResp businessException(CustomException e) {
        return BaseResp.error(e.getCode()+"",e.getMsg(),e.getSuccess());
    }
}
